Method for increasing efficiency of transferring packet of isochronous transfer type and device thereof

ABSTRACT

A method for increasing the efficiency of transferring packets of isochronous transfer type in USB 3.0 includes ignoring a packet of isochronous transfer type with an incorrect header. When the receiving end receives a packet of isochronous transfer type with an incorrect header, the receiving end does not send a retry signal to the transmitting end. Therefore, the transmitting end can more quickly transmit the following packets of isochronous transfer type.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method for data transferring, andmore particularly, to a method for increasing efficiency of transferringpacket of isochronous transfer type.

2. Description of the Prior Art

The Universal Serial Bus (USB) protocol version 3.0 defines fourtransfer types: control transfer type, interrupt transfer type, bulktransfer type, and isochronous transfer type. In general, isochronoustransfer type is applied in audio and video transmissions. However,since the audio and the video transmission have to be real-timetransferring, when packets of the isochronous transfer type aretransferred, the transmission speed has to be stable withoutinterruption, so as to prevent the audio or the video signals at thereceiving end from discontinuous condition, or un-synchronization to thetransmitting end.

Please refer to FIG. 1. FIG. 1 is a diagram illustrating the packetformat of a USB 3.0 packet DP. USB 3.0 is taken as an example as shownin FIG. 1. The packet DP comprises a header H, and a data payload P. Theheader H comprises a type information TP, an end point information EP, alink command word LW, and a header error check code CRC_(H). The datapayload P comprises a data session D, and a data error check codeCRC_(D).

The type information TP is utilized for determining the packet type ofthe packet DP. The packet type, for example, may be handshake, data . .. etc. The end point information EP is utilized for determining thetransfer type of the packet DP, such as isochronous transfer type. Thelink command word LW is utilized for indicating the condition of thedata connection, and the link command word LW further comprises a linkcommand word error check code CRC_(L) and a header sequence number HSEQ.The link command word error check code CRC_(L) is utilized fordetermining if errors exist in the link command word LW. The headsequence number HSEQ is utilized for determining if the packet sequenceof the packet DP is incorrect. The header error check code CRC_(H) isutilized for determining if errors exist in the header H.

The data session D provides the actual transmitted data, such as audiodata, video data . . . etc. The data error check code CRC_(D) isutilized for determining if errors exist in the data session D.Additionally, the data session D may comprise N data SD₁˜SD_(N).

Please refer to FIG. 2. FIG. 2 is a diagram illustrating the packet ofthe isochronous transfer type being transferred by the prior art. Asshown in FIG. 2, the transmitting end T may be a host or a device, andthe receiving end may be a device or a host correspondingly. The dataprocess of the transmitting end T and the receiving end R can be dividedinto the physical layer PH, the data link layer DL, and the protocollayer PR from the bottom. As shown in FIG. 2, when the receiving end Rreceives a packet DP₁ from the transmitting end T, after the process ofthe physical layer PH, the data link layer DL of the receiving end DLdetermines if the header H₁ of the packet DP₁ is correct directlyaccording to the link command word error check code CRC_(L1) and theheader error check code CRC_(H1). If the header H₁ of the packet DP₁ isdetermined to be correct, then the receiving end R executes thefollowing process according to the header H₁ of the packet DP₁, and thefollowing process may be uploading the packet DP₁ to the protocol layerPR of the receiving end R so as to determine if the data payload P₁ iscorrect according to the data error check code CRC_(D1) of the datapayload P₁ of the packet DP₁, and after the data payload P₁ of thepacket DP₁ is determined to be correct, generating correspondingactions, e.g. outputting the audio or video data according to theprotocol and the content of the data session D₁, according to the eventsdefined by the protocol and the content of the data session D₁ (dataSD₁₁˜SD_(1N)). However, when the data link layer DL of the receiving endR determines the header H₁ of the packet DP₁ to be incorrect, the datalink layer DL of the receiving end R directly sends a retry signalS_(RETRY) to the transmitting end T for requiring the transmitting end Tto transmit the packet DP₁ again. In other words, even the packet DP₁ isof the isochronous transfer type, the receiving end R still sends aretry signal S_(RETRY) to the transmitting end T if the header of thepacket DP₁ is incorrect. In this way, the transmitting end T has totransmit the packet DP₁ of the isochronous transfer type again.Therefore, when the audio or the video data are transmitted, unnecessarydelay arises, which deteriorates the discontinuous condition or theun-synchronization, causing inconvenience.

SUMMARY OF THE INVENTION

The present invention provides a method for increasing efficiency oftransferring packet of isochronous transfer type. The method comprisesreceiving a first packet of isochronous transfer type from atransmitting end; executing error code check on a header of the firstpacket of isochronous transfer type for obtaining a check result; andignoring the first packet of isochronous transfer type when the checkresult represents incorrect.

The present invention further provides a method for increasingefficiency of transferring packet of isochronous transfer type. Themethod comprises when a transmitting end receives a retry signalcorresponding to a first packet of isochronous transfer type from areceiving end, the transmitting end setting value of a second headersequence number of a second packet of isochronous transfer typeaccording to value of a first header sequence number of the first packetof isochronous transfer type; and the transmitting end transmitting thesecond packet of isochronous transfer type with set second headersequence number to the receiving end.

The present invention further provides an apparatus for sending data onan isochronous communication protocol. The apparatus comprises a datalink layer device selectively sending a cheating packet based on adetecting signal.

These and other objectives of the present invention will no doubt becomeobvious to those of ordinary skill in the art after reading thefollowing detailed description of the preferred embodiment that isillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating the packet format of a USB 3.0 packetDP.

FIG. 2 is a diagram illustrating the packet of the isochronous transfertype being transferred by the prior art.

FIG. 3 is a flowchart illustrating a method for increasing theefficiency of transferring packet of isochronous transfer type in USB3.0.

FIG. 4 is a diagram illustrating the transmitting end not being requiredto re-transmit a packet of isochronous transfer type when the header ofthe packet is incorrect according to the present invention.

FIG. 5 is a flowchart illustrating a method for increasing efficiency oftransferring packet of isochronous transfer type in USB 3.0 according toa second embodiment of the present invention.

FIG. 6 is a diagram illustrating the transmitting end notre-transmitting the packet previously transmitted under the conditionthat the receiving end requires the transmitting end to re-transmit thepacket of isochronous transfer type previously transmitted by thetransmitting end.

FIG. 7 is a diagram illustrating an apparatus for sending data on anisochronous communication protocol according to the present invention.

DETAILED DESCRIPTION

Therefore, the present invention provides a novel transmitting methodfor improving the discontinuous condition and the un-synchronization forthe isochronous transfer and further increasing the efficiency oftransferring packet of isochronous transfer type.

Please refer to FIG. 3. FIG. 3 is a flowchart illustrating a method 300for increasing the efficiency of transferring packet of isochronoustransfer type in USB 3.0. For the method 300, it is assumed that thetransmitting end T is about to transmit two packets DP₁ and DP₂ ofisochronous transfer type, and the transferring sequence for the packetsis that the transmitting end T transmits the packet DP₁ to the receivingend R first, and then transmits the packet DP₂ to the receiving end R.The steps are described as follows:

Step 301: The receiving end R receives the packet DP₁ of isochronoustransfer type transmitted from the transmitting end T;

Step 302: The receiving end R executes error code checking on the headerH₁ of the packet DP₁ of isochronous transfer type according to the linkcommand word error check code CRC_(L1) and the header error check codeCRC_(H1) of the packet DP₁ of isochronous transfer type for obtaining alink command word check result E_(L1) and a header check result E_(H1)respectively;

Step 303: The receiving end R determines if the header H₁ of the packetDP₁ is correct according to the link command word check result E_(L1)and the header check result E_(H1); if so, go to step 304; if not, go tostep 305;

Step 304: The receiving end R accepts the packet DP₁ of isochronoustransfer type for executing the following process;

Step 305: The receiving end R ignores the packet DP₁ of isochronoustransfer type and does not require the transmitting end T to transmitthe packet DP₁ of isochronous transfer type again so as to allow thetransmitting end T to transmit the next packet DP₂ of isochronoustransfer type.

Additionally, the steps 301˜305 above-mentioned can be executed in thedata link layer DL of the receiving end R.

In the step 301, when the packet DP₁ is received from the transmittingend T, the packet DP₁ can be determined to be isochronous transfer typeaccording to the type information TP₁ and the end point information EP₁of the packet DP₁.

In the step 302, the error check code CRC_(H1) of the header H₁ of thepacket DP₁ may be Cyclic Redundancy Check 16 (CRC-16), and the errorcheck code CRC_(L1) may be CRC-5. The way to determine if the header H₁of the packet DP₁ is correct can be executing CRC respectively on theheader H₁ and the link command word LW₁ of the packet DP₁. For example,the overall CRC of the header H₁ is to divide the header H₁ (includingthe error check code CRC_(H1)) of the packet DP₁ by a predetermineddivisor CRC_(DH) for obtaining a corresponding remainder CRC_(RH1). Theheader check result E_(H1) is obtained according to the remainderCRC_(RH1), and the link command word check result E_(L1) can be obtainedsimilarly.

In the step 303, when the remainder CRC_(RH1) equals a predeterminedvalue X, the header check result E_(H1) represents the header H₁ of thepacket DP₁ is correct; when the remainder CRC_(RH1) does not equal thepredetermined value X, the header check result E_(H1) represents theheader H₁ of the packet DP₁ is incorrect. For example, it is assumedthat the predetermined value X is 0; when the remainder CRCR_(H1) equals0, the header check result E_(H1) represents the header H₁ of the packetDP₁ is correct; when the remainder CRCR_(H1) does not equal 0, theheader check result E_(H1) represents the header H₁ of the packet DP₁ isincorrect. The link command word check result E_(L1) can be obtainedsimilarly. In the present embodiment, when both the header check resultE_(H1) and the link command word check result E_(L1) represent correct,the header H₁ is determined to be correct; when one of the header checkresult E_(H1) and the link command word check result E_(L1) representsincorrect, the header H₁ is determined to be incorrect.

In the step 304, after the receiving end R accepts the packet DP₁ ofisochronous transfer type, the packet DP₁ is uploaded to the protocollayer PR for the following process and the following process in theprotocol layer PR is similar to the description above and will not berepeated again for brevity.

In the step 305, the receiving end R is informed that the packet DP₁ isincorrect by the header check result E_(H1) and the link command wordcheck result E_(L1), and accordingly ignores the packet DP₁. However,for increasing the transferring efficiency, which means the transmittingend T transmits the next packet DP₂ sooner, the receiving end R does notrequire the transmitting end T to transmit the packet DP₁ again, whichmeans the data link layer DL of the receiving end R does not send theretry signal S_(RETRY), requiring the transmitting end T to transmit thepacket DP₁ again, to the transmitting end T. More particularly, if thetransmitting end T is required to transmit the packet DP₁ again, thetransmitting end T will transmit the packet DP₁ for the second time,which delays the moment that the next packet DP₂ is sent, andconsequently the discontinuous condition or the un-synchronizationarises. However, since in the step 305 of the present invention, thetransmitting end T is not required to transmit the packet DP₁ again, thenext packet DP₂ can be instantly transmitted to the receiving end R,instead of being delayed by the re-transmission for the packet DP₁, soas to increase the transferring efficiency and improve the discontinuouscondition or the un-synchronization for the audio data or the videodata.

Please refer to FIG. 4. FIG. 4 is a diagram illustrating thetransmitting end T not being required to re-transmit a packet ofisochronous transfer type (step 305) when the header of the packet isincorrect according to the present invention. The top half of FIG. 4illustrates the transmitting end T being required to re-transmit apacket of isochronous transfer type when the header of the packet isincorrect (prior art); the bottom half of FIG. 4 illustrates thetransmitting end T not being required to re-transmit a packet ofisochronous transfer type (step 305) when the header of the packet isincorrect according to the present invention. By comparing the top halfand the bottom half of FIG. 4, it is known that the method provided bythe present invention can certainly increase the efficiency oftransferring packets of isochronous transfer type. In FIG. 4, it isassumed that the transmitting end T is to transmit the packets DP₁, DP₂,DP₃, DP₄, and DP₅ of isochronous transfer type sequentially. When thereceiving end R receives a packet, in the process of the data linklayer, the header of the received packet is executed with error checkand accordingly a corresponding acknowledge signal ACK is transmitted tothe transmitting end T for informing the transmitting end T that thetransmitted packet has been correctly received. For example, when theacknowledge signal ACK represents “LGOOD”, it means the packettransmitted by the transmitting end T is correctly received so thetransmitting end T does not have to re-transmit the packet; when theacknowledge signal ACK represents “LBAD”, it means the packettransmitted by the transmitting end T is not correctly received and thetransmitting end T has to re-transmit the packet. That is, when theacknowledge signal represents “LBAD”, the receiving end R sends out aretry signal S_(RETRY) for requiring the transmitting end T tore-transmit the packet. It can be seen from the bottom half of FIG. 4that the packet DP₁ is determined to be incorrect by the process of thedata link layer DL of the receiving end R. However, the acknowledgesignal ACK₁ corresponding to the packet DP₁ still represents “LGOOD”, sofor the transmitting end T, it seems that the transmission of the packetDP₁ is successful and thus a next packet DP₂ is to be transmitted by thetransmitting end T consecutively. Furthermore, the receiving end R isinformed by the error check that the packet DP₁ is incorrect so thatactually the receiving end R does not execute the following process forthe packet DP₁. Instead, the packet DP₁ is ignored. On the other hand,from the top half of FIG. 4, it can be seen that the packet DP₁ isdetermined to be incorrect by the process of the data link layer DL ofthe receiving end R. Thus, the acknowledge signal ACK₁ corresponding tothe packet DP₁ represents “LBAD” to inform the transmitting end T that are-transmission of the packet DP₁ is required. After the transmittingend T transmits the packet DP, for the second time, the packet DP₁ fromthe transmission for the second time is still determined to be incorrectby the process of the data link layer DL of the receiving end R, and theacknowledge signal ACK₂ corresponding to the packet DP₁, from thetransmission for the second time still represents “LBAD” to inform thetransmitting end T that the re-transmission for the packet DP₁ is stillrequired. The receiving end R receives a correct packet DP₁ till thetransmitting end T transmits the packet DP₁ for the third time andaccordingly responds an acknowledge signal ACK₃ to the transmitting endT so that the transmitting end T can transmit the next packet DP₂. Fromthe description above, it is known that within the same time, fivepackets DP₁˜DP₃ shown in the bottom half of FIG. 4 are completelytransmitted, but only three packet DP₁˜DP₃ are transmitted shown in thetop half of FIG. 4. Although the packet DP₁, is received incorrectly bythe receiving end R in the bottom half of FIG. 4, it is allowable forthe audio or video transmissions and consequently the transmissionefficiency is increased. The packets received are all correct in the tophalf of FIG. 4, however, the transmission efficiency is decreasedbecause of the re-transmission, which possibly causes un-synchronizationbetween the transmitting end T and the receiving end R, causing greatinconvenience.

Furthermore, for the transmission under USB 3.0, the transmitting end Tcomprises a packet transmitting counter C_(T) for counting the numberN_(T) of transmitted packets so as to write a correct value in theheader sequence number HSEQ; the receiving end R comprises a packetreceiving counter CR for counting the number N_(R) of received packetsso as to determine if the header sequence number of the received packetDP is correct. Before the initialization between the transmitting end Tand the receiving end R, the transmitting end T synchronizes the numberN_(T) of the transmitted packets of the transmitting end T and thenumber N_(R) of the received packets of the receiving end R. Moreparticularly, before the initialization between the transmitting end Tand the receiving end R, the transmitting end T resets the number N_(T)of the transmitted packets to be a predetermined value N₁ and sends outa synchronous sequence signal S_(SEQ) to the receiving end R so as toreset the number N_(R) of the received packets of the receiving end R tobe the predetermined value N₁. Meanwhile, the receiving end R isinformed that each time the receiving end R receives a packet correctly,the number N_(R) of the received packets is increased with a step numberN_(STEP). In this way, every time when the transmitting end T receivesan acknowledge signal ACK representing “LGOOD” (meaning the receivingend R has correctly received the packet), the number N_(T) of thetransmitted packets is increased with the step number N_(STEP) as well.For example, when the transmitting end T is to transmit a first packetDP₀, the transmitting end T sets the header sequence number HSEQ₀ to beN₁ according to the value of the number N_(T) of the transmittedpackets. When the receiving end R receives the packet DP₀, the receivingend R compares the value (N₁) of the header sequence number H_(SEQ0)with the value (N₁) of the number N_(R) of the received packets. If thevalue of the header sequence number HSEQ₀ equals the value of the numberN_(R) of the received packets (N₁), the receiving end R determines thepacket sequence of the packet DP₀ to be correct; if not, the receivingend R determines the packet sequence of the packet DP₀ to be incorrect.After the receiving end R correctly receives the packet DP₀, thereceiving end R increases the number N_(R) of the received packets withthe step number N_(STEP), which means the value of the number N_(R) ofthe received packets becomes (N₁+N_(STEP)), and then the receiving end Rsends out an acknowledge signal ACK representing “LGOOD” to thetransmitting end T for the transmitting end T increasing the value ofthe number N_(T) of the transmitted packets with the step numberN_(STEP). In this way, when the transmitting end T is to transmit thefollowing packet DP₁, of the packet DP₀, the transmitting end T sets theheader sequence number HSEQ₁ of the packet DP₁ to be (N₁+N_(STEP))according to the value of the number NT of the transmitted packets.Thus, when the receiving end R receives the packet DP₁, the receivingend R compares the value of the number N_(R) of the received packetswith the value of the header sequence number HSEQ₁ for determining ifthe packet sequence of the packet DP₁, is correct.

Please refer to FIG. 5. FIG. 5 is a flowchart illustrating a method forincreasing efficiency of transferring packet of isochronous transfertype in USB 3.0 according to a second embodiment of the presentinvention. In the method 500, it is assumed that the transmitting end Tis to transmit two packets DP₀ and DP₁ of isochronous transfer type.That is, the buffer of the transmitting end T stores the packets DP₀ andDP₁ waiting to be transmitted, and the sequence for transmission of thepackets DP₀ and DP₁, is that the packet DP₀ is transmitted to thereceiving end R first, and then the packet DP₁ is transmitted to thereceiving end R. In the present embodiment, when the receiving end Rreceives the packet DP₀, the receiving end R determines if the linkcommand word LW₀ or the header H₀ of the received packet DP₀ isincorrect according to the link command word error check code CRC_(L0)and the header error check code CRC_(H0) of the packet DP₀ ofisochronous transfer type, and accordingly sends out a retry signalS_(RETRY) to the transmitting end T for requiring re-transmission forthe packet DP₀ of isochronous transfer type. The steps are explained asfollows:

Step 501: The transmitting end T receives a retry signal S_(RETRY)requiring re-transmission for the packet DP₀ of isochronous transfertype from the receiving end R;

Step 502: The transmitting end T sets the value of the header sequencenumber HSEQ₁ of the packet DP₁ of isochronous transfer type according tothe value of the header sequence number HSEQ₀ of the packet DP₀;

Step 503: The transmitting end T transmits the packet DP₁ of isochronoustransfer type and does not transmit the packet DP₀.

Additionally, the steps 501˜503 are executed in the data link layer DLof the transmitting end T.

In the step 501, the transmitting end T can be informed by the retrysignal S_(RETRY) that the receiving end R does not successfully receivethe packet (the packet DP₀) previously transmitted by the transmittingend T, and the transmitting end T can be informed by the typeinformation TP₀ and the end point information EP₀ of the packet DP₀stored in the buffer of the transmitting end T that the packet DP₀ is ofisochronous transfer type.

In the step 502, since the transmitting end T does not receive theacknowledge signal ACK representing “LGOOD”, the number N_(T) of thetransmitted packets of the transmitting end T is not increased with thestep number N_(STEP). More particularly, the value of the number N_(T)of the transmitted packets of the transmitting end T equals the value ofthe header sequence number HSEQ₀ of the packet DP₀. Thus, thetransmitting end T sets the value of the header sequence number HSEQ₁ ofthe packet DP₁ according to the value of the number N_(T) of thetransmitted packets (equals the value of the header sequence numberHSEQ₀). For example, if the value of the header sequence number HSEQ₀ is0, then the transmitting end T sets the value of the header sequencenumber HSEQ₁ of the packet DP₁ to be 0.

In the step 503, the transmitting end T directly transmits the packetDP₁. Since the value of the header sequence number HSEQ₁ is set to beequal to the value of the header sequence number HSEQ₀ of the packetDP₀, the value of the number N_(R) of the received packets of thereceiving end R still remains to be equal to the value of the headersequence number HSEQ₀. Therefore, when the receiving end R receives thepacket DP₁, because the value of the header sequence number HSEQ₁ of thepacket DP₁ equals the value of the header sequence number HSEQ₀, whichmeans the value of the header sequence number HSEQ₁ equals the value ofthe number N_(R) of the received packets), the receiving end Rdetermines the packet sequence of the packet DP₁ to be correct.

Please refer to FIG. 6. FIG. 6 is a diagram illustrating thetransmitting end T not re-transmitting the packet previously transmitted(step 503) under the condition that the receiving end R requires thetransmitting end T to re-transmit the packet of isochronous transfertype previously transmitted by the transmitting end T. In FIG. 6, it isassumed that the transmitting end T has sent the sequence signal S_(SEQ)to the receiving end R. The transmitting end T resets the number N_(T)of the transmitted packets to be the predetermined value N₁ (in FIG. 6,the predetermined value is 0). The receiving end R resets the numberN_(R) of the received packets to be the predetermined value N₁ (0) aswell. Additionally, the step number N_(STEP) is set to be 1. The tophalf of FIG. 6 illustrates the transmitting end T re-transmitting thepacket previously transmitted under the condition that the receiving endR requires the transmitting end T to re-transmit the packet ofisochronous transfer type previously transmitted by the transmitting endT (prior art); the bottom half of FIG. 6 illustrates the transmittingend T not re-transmitting the packet previously transmitted (step 503according to the present invention) under the condition that thereceiving end R requires the transmitting end T to re-transmit thepacket of isochronous transfer type previously transmitted by thetransmitting end T. By such manner, it can be understood that thepresent invention can certainly increase the efficiency of transferringpacket of isochronous transfer type in USB 3.0. In FIG. 6, it is assumedthat the transmitting end T is to transmit the packets DP₀, DP₁, DP₂,DP₃, and DP₄ sequentially, and the packet DP₁ is determined to beincorrect during the process of the data link layer DL of the receivingend R. Thus, the number N_(R) of the received packets of the receivingend R still remains to be 1, and the receiving end R sends out anacknowledge signal ACK₁ (corresponding to the packet DP₁) representing“LBAD” for requiring the transmitting end T to re-transmit.Consequently, the number N_(T) of the transmitted packets of thetransmitting end T still remains to be 1 as well. In the top half ofFIG. 6, the transmitting end T re-transmits the packet DP₁; however, inthe bottom half of FIG. 6, the transmitting end T does not re-transmitthe packet DP₁. Instead, the transmitting end T sets the value of theheader sequence number HSEQ₂ of the packet DP₂ according to the currentvalue of the number N_(T) of the transmitted packets (equals to thevalue of the header sequence number HSEQ₁) and transmits the packet DP₂to the receiving end R. In this way, when the receiving end R receivesthe packet DP₂ with the value of the header sequence number HSEQ₂changed to be 1, the receiving end R determines the packet sequence ofthe packet DP₂ to be correct according to the value of the number N_(R)of the received packets (equals 1) and the value of the value of theheader sequence number HSEQ₂ (equals 1). If the value of the headersequence number HSEQ₂ of the packet DP₂ is not set to be 1, thereceiving end R determines that during the transmission a packet withthe value of the header sequence number equaling 1 is lost, according tothe value of the number N_(R) of the received packets (equals 1) and thevalue of the header sequence number HSEQ₂ (does not equals 1).Meanwhile, the receiving end R determines un-synchronous to thetransmitting end T and consequently sends out a synchronous requestsignal S_(SYN) to the transmitting end T for requesting synchronization.In the bottom half of FIG. 6, after the transmitting end T completes thetransmission of the packet DP₂, the receiving end R correctly receivesthe packet DP₂, and increases the value of the number N_(R) of thereceived packets (equals 1) with the step number N_(STEP) so that thevalue of the number N_(R) of the received packets becomes 2. Thereceiving end R sends out an acknowledge signal ACK₂ (corresponding tothe packet DP₂) representing “LGOOD”. Consequently, the transmitting endT increases the value of the number N_(T) of the transmitted packetswith the step number N_(STEP) so that the value of the number N_(T) ofthe transmitted packets becomes 2. In this way, when the transmittingend T is to transmit the packet DP₃, because the value of the numberN_(T) of the transmitted packets equals the value of the number N_(R) ofthe received packets, the transmitting end T sets the header sequencenumber HSEQ₃ with the correct value, which allows the receiving end R todetermine the packet sequence to be correct and not to send out thesynchronous request signal S_(SYN). In this way, within the same time,five packets DP₀˜DP₄ are completely transmitted as shown in the bottomhalf of FIG. 6, while only four packets DP₀˜DP₃ are transmitted as shownin the top half of FIG. 6. Although in the bottom half of FIG. 6, thepacket DP₁ received is incorrect, and the transmitting end T does notre-transmit the packet DP₁, such condition is allowable when the audioor the video transmissions is executed and the transmission efficiencyis increased. The packets received are all correct in the top half ofFIG. 6, however, the transmission efficiency is decreased because of there-transmission, which possibly causes un-synchronization between thetransmitting end T and the receiving end R, causing great inconvenience.

Please refer to FIG. 7. FIG. 7 is a diagram illustrating an apparatus700 for sending data on an isochronous communication protocol accordingto the present invention. The apparatus 700 is utilized to transmitdata. The apparatus 700 comprises a first data link layer device 711, asecond data link layer device 712, a first protocol layer device 721,and a second protocol layer device 722. Additionally, the apparatus 700comprises physical layer devices corresponding to the first and thesecond data link layer device 711 and 712 (not shown). The apparatus 700is derived from the first and the second embodiments of the presentinvention. As shown in FIG. 7, when the first data link layer device 711and the first protocol layer device 721 are in the transmitting end, thesecond data link layer device 712 and the second protocol layer device722 are in the receiving end; when the first data link layer device 711and the first protocol layer device 721 are in the receiving end, thesecond data link layer device 712 and the second protocol layer device722 are in the transmitting end. The first data link layer device 711and the second data link layer device 712 are both capable of detectingthe data transmitted between the two data link layer device 711 and 712and accordingly generating detecting signals S_(D1) and S_(D2). Forexample, it is assumed that the first data link layer device 711 and thefirst protocol layer device 721 are in the receiving end, and the seconddata link layer device 712 and the second protocol layer device 722 arein the transmitting end; when the first data link layer device 711detects a CRC error in the transmitted packet, the detecting signalS_(D1) indicates the CRC error and the first data link layer device 711accordingly transmits a cheating packet data DP_(CRC) to the second datalink layer device 712, wherein the cheating packet data DP_(CRC)comprises the erroneous packet data corresponding to the CRC error. Thesecond data link layer device 712 processes the received cheating packetdata DP_(CRC) and then transmits to the second protocol layer device722. When the first data link layer device 711 detects a retry signaltransmitted from the second data link layer device 712, the detectingsignal S_(D2) represents that re-transmitting a first packet isrequired, and the second data link layer device 712 accordinglytransmits a cheating packet data DP_(RETRY) to the first data link layerdevice 711, wherein the cheating packet data DP_(RETRY) comprises asecond packet data which is different from the first packet. The firstdata link layer device 711 processes the received cheating packet dataDP_(RETRY) and then transmits to the first protocol layer device 721.Besides, the second packet may be a packet following the first packet.

To sum up, in the present invention for transmitting packets, thereceiving end does not send out the retry signal to the transmitting endwhen a packet of isochronous transfer type with errors exists in thedata link layer. Furthermore, the present invention provides anothermethod for transmitting, which allows the transmitting end to directlytransmit the current packet of isochronous transfer type instead oftransmitting the previous packet of isochronous transfer type when thetransmitting end receives a retry signal representing that there-transmission of the previous packet of isochronous transfer type isrequired, so as for the transmitting end transmitting the successivepackets of isochronous transfer type more quickly. In this way, theproblem of discontinuous condition or the un-synchronization forisochronous transfer type can be solved, which provides greatconvenience.

Those skilled in the art will readily observe that numerousmodifications and alterations of the device and method may be made whileretaining the teachings of the invention.

1. A method for increasing efficiency of transferring packet ofisochronous transfer type, the method comprising: receiving a firstpacket of isochronous transfer type from a transmitting end; executingerror code check on a header of the first packet of isochronous transfertype for obtaining a check result; and ignoring the first packet ofisochronous transfer type when the check result represents incorrect. 2.The method of claim 1, further comprising: receiving the first packet ofisochronous transfer type for executing following process when the checkresult represents correct.
 3. The method of claim 1, wherein ignoringthe first packet of isochronous transfer type when the check resultrepresents incorrect comprises: not requiring the transmitting end tore-transmit the first packet of isochronous transfer type when the checkresult represents incorrect.
 4. The method of claim 3, wherein notrequiring the transmitting end to re-transmit the first packet ofisochronous transfer type when the check result represents incorrectcomprises: not requiring the transmitting end to re-transmit the firstpacket of isochronous transfer type for the transmitting endtransmitting a second packet of isochronous transfer type directly. 5.The method of claim 1, wherein the transmitting end may be a host or adevice.
 6. The method of claim 1, wherein executing error code check onthe header of the first packet of isochronous transfer type forobtaining the check result comprises: executing Cyclic Redundancy Check(CRC) on a header error check code of the header of the first packet ofisochronous transfer type for obtaining a header check result; executingCRC on a link command word error check code of the header of the firstpacket of isochronous transfer type for obtaining a link command wordcheck result; and obtaining the check result according to the headercheck result and the link command word check result.
 7. The method ofclaim 6, wherein obtaining the check result according to the headercheck result and the link command word check result comprises: when theheader check result represents correct and the link command word checkresult represents correct, the check result represents correct; and whenone of the header check result and the link command word check resultrepresents incorrect, the check result represents incorrect.
 8. Themethod of claim 6, wherein the header error check code is CRC-16; thelink command word error check code is CRC-5.
 9. The method of claim 8,wherein executing CRC on the header error check code of the header ofthe first packet of isochronous transfer type for obtaining the headercheck result comprises: dividing the header error check code of theheader of the first packet of isochronous transfer type by apredetermined divisor for obtaining a remainder; and obtaining theheader check result according to the remainder.
 10. The method of claim9, wherein when the remainder equals a predetermined value, the headercheck result represents correct; when the remainder does not equal thepredetermined value, the header check result represents incorrect. 11.The method of claim 10, wherein the predetermined value may be zero. 12.The method of claim 8, wherein executing CRC on the link command worderror check code of the header of the first packet of isochronoustransfer type for obtaining the header check result comprises: dividingthe link command word check code of the header of the first packet ofisochronous transfer type by a predetermined divisor for obtaining aremainder; and obtaining the link command word check result according tothe remainder.
 13. The method of claim 12, wherein when the remainderequals a predetermined value, the link command word check resultrepresents correct; when the remainder does not equal the predeterminedvalue, the link command word check result represents incorrect.
 14. Themethod of claim 13, wherein the predetermined value may be zero.
 15. Amethod for increasing efficiency of transferring packet of isochronoustransfer type, the method comprising: when a transmitting end receives aretry signal corresponding to a first packet of isochronous transfertype from a receiving end, the transmitting end setting value of asecond header sequence number of a second packet of isochronous transfertype according to value of a first header sequence number of the firstpacket of isochronous transfer type; and the transmitting endtransmitting the second packet of isochronous transfer type with setsecond header sequence number to the receiving end.
 16. The method ofclaim 15, wherein the transmitting end first transmits the first packetof isochronous transfer type and then transmits the second packet ofisochronous transfer type.
 17. The method of claim 16, wherein thetransmitting end setting value of the second header sequence number ofthe second packet of isochronous transfer type according to value of thefirst header sequence number of the first packet of isochronous transfertype comprises: the transmitting end setting the value of the secondheader sequence number of the second packet of isochronous transfer typeto be the value of the first header sequence number of the first packetof isochronous transfer type.
 18. The method of claim 17, furthercomprising: the transmitting end synchronizing the transmitting end andthe receiving end before the transmitting end transmits the first packetof isochronous transfer type.
 19. The method of claim 18, wherein thetransmitting end synchronizing the transmitting end and the receivingend comprises: the transmitting end resetting value of a transmittedpacket counter of the transmitting end to be a predetermined value; andthe transmitting end transmitting a synchronous sequence signal to thereceiving end for resetting value of a received packet counter of thereceiving end to be the predetermined value.
 20. The method of claim 19,further comprising: the transmitting end controlling the transmittedpacket counter to increase a step number every time after a packet istransmitted; and the transmitting end informing the receiving end forcontrolling the received packet counter to increase the step numberevery time after a packet is correctly received.
 21. The method of claim20, further comprising: when the transmitting end receives the retrysignal from the receiving end, the transmitting end controlling thetransmitted packet counter not to increase the step number.
 22. Themethod of claim 21, wherein the first header sequence number of thefirst packet of isochronous transfer type is the value of thetransmitted packet counter.
 23. The method of claim 15, furthercomprising: the transmitting end determining if the first packet is ofisochronous transfer type according to a type information and an endpoint information of the first packet.
 24. The method of claim 15,wherein when the transmitting end is a host, the receiving end is adevice; when the transmitting end is a device, the receiving end is ahost.
 25. An apparatus for sending data on an isochronous communicationprotocol, the apparatus comprising: a data link layer device selectivelysending a cheating packet based on a detecting signal.
 26. The apparatusof claim 25, wherein when the detecting signal is a CRC error signal,the data link layer device sends the cheating packet data whichcomprises an error packet data corresponding to the CRC error signal.27. The apparatus of claim 26, further comprising a protocol layerdevice receiving the cheating packet data.
 28. The apparatus of claim25, wherein when the detecting signal is a retry signal indicating there-transmission of a first packet data, the data link layer device sendsthe cheating packet data which comprises a second packet data differentfrom the first packet data.
 29. The apparatus of claim 28, furthercomprising a physical layer device receiving the cheating packet data.